<?php
//movimientos de proveedor
class sprm extends Controller {
	
	var $usuario;
	var $super;

	function sprm(){
		parent::Controller();
		$this->load->library('rapyd');
        $this->load->library('Cuenta');
		$this->usuario=$this->session->userdata['usuario'];
		$this->super=$this->datasis->dameval("SELECT usu_tip FROM usuarios WHERE usu_login='$this->usuario'");
	}
    function index() {
        
		redirect('finanzas/sprm/filteredgrid');
		
	}
	function filteredgrid(){
        
        $mSQL=$this->db->query("select  a.transac  from sprm  as a 
        LEFT JOIN itppro as b on a.transac=b.id 
        WHERE b.id IS NULL and tipo_doc  in ('AB')");
        
        foreach($mSQL->result() as $items ){
            $this->db->query("DELETE FROM sprm WHERE transac='$items->transac' and tipo_doc='AB'");
        }
		
        $this->rapyd->load('datagrid2','datafilter');

		$atts = array(
			'width'      => '800',
			'height'     => '600',
			'scrollbars' => 'yes',
			'status'     => 'yes',
			'resizable'  => 'yes',
			'screenx'    => '0',
			'screeny'    => '0'
		);

		$modbus=array(
			'tabla'   =>'sprv',
			'columnas'=>array(
			'proveed' =>'C&oacute;digo Proveedor',
			'nombre'=>'Nombre',
			'rif'=>'RIF'),
			'filtro'  =>array('proveed'=>'C&oacute;digo Proveedor','nombre'=>'Nombre'),
			'retornar'=>array('proveed'=>'proveed'),
			'titulo'  =>'Buscar Proveedor');

		$boton=$this->datasis->modbus($modbus);
        
        $this->rapyd->uri->keep_persistence();
        
		$filter = new DataFilter('B&uacute;squeda de Movimientos de Proveedores');
		$select=array( 'c.factura as numerof','b.rif','a.cod_prv',  'a.nombre',  'tipo_doc',  'a.numero',  'a.factura',  'a.seriep',  'a.seriei',  
		'a.numeroi',  'a.proveed',  'a.transac',  'a.fecha',  'subtotal',  'impuesto',  'c.monto as  montof','a.monto as montoc',  'montodetra',  
		'totalg',  'reteiva',  'abonos',  'ultiabonado',  'vence',  'estampa',  'hora',  'usuario', 
		 'detraccion',  'cajachica',  'observa1',  'causado',  'moneda',  'cambio' ); 
		$filter->db->select($select);
		$filter->db->from("sprm AS a");
		$filter->db->join("sprv AS b",'a.cod_prv=b.proveed');
		$filter->db->join("relacion AS c",'a.seriei=c.serie AND a.numeroi=c.numero','LEFT');
		$filter->db->where("tipo_doc NOT IN ('FC','P','D')");
		//$filter->db->groupby("a.id");

		$filter->fechad = new dateonlyField('Desde', 'fechad','d/m/Y');
		$filter->fechah = new dateonlyField('Hasta', 'fechah','d/m/Y');
		$filter->fechad->clause  =$filter->fechah->clause ='where';
		$filter->fechad->db_name =$filter->fechah->db_name='a.fecha';
		$filter->fechah->size=$filter->fechad->size=10;
		$filter->fechad->operator='>=';
		$filter->fechah->operator='<=';
	
		$filter->serief = new inputField('N&deg; Serie', 'c.seriep');
		$filter->serief->size=20;
		$filter->serief->maxlength=3;
		
		$filter->factura = new inputField('Factura', 'c.factura');
		$filter->factura->size=20;
		$filter->factura->maxlength=11;
		
		$filter->numeroi = new inputField('Comprobante', 'a.numeroi');
		$filter->numeroi->size=20;
		$filter->numeroi->maxlength=11;

		$filter->proveedor = new inputField('Nombre Proveedor','proveed');
		$filter->proveedor->db_name  = 'a.nombre';
		//$filter->proveedor->append($boton);
		$filter->proveedor->size=20;
		
		$filter->rifci = new inputField('RUC','b.rif');
		$filter->rifci->size=13;
				
		$filter->cajachica = new  dropdownField ('Caja Chica','a.cajachica');
		$filter->cajachica->option('','Todos');
        $filter->cajachica->option('N','No esta relacionado con caja chica');
        $filter->cajachica->option('S','Si esta relacionado con caja chica');
        $filter->cajachica->style='width:260px;';
        
        //$filter->detraccion = new  dropdownField ('Detracci&oacute;n','a.detraccion');
        //$filter->detraccion->option('','Todos');
        //$filter->detraccion->option('N','No es un pago por detracci&oacute;n');
        //$filter->detraccion->option('S','Si es un pago por detracci&oacute;n');
        //$filter->detraccion->style='width:260px;';
        
        $filter->banco = new dropdownField("Banco", "a.seriei");
		$filter->banco->style='width:200px;';
        $filter->banco->option("","Todos");
		$filter->banco->options("SELECT codigo, descrip FROM bancos ORDER BY codigo" );
		
		$filter->tipo_doc = new dropdownField("Tipo de Documento", "tipo_doc");
		$filter->tipo_doc->style='width:200px;';
        $filter->tipo_doc->option("","Todos");
		$filter->tipo_doc->option("AB","PAGO A PROVEEDORES");
		$filter->tipo_doc->option("ND","NOTAS DE DEBITO");
		$filter->tipo_doc->option("NC","NOTAS DE CREDITO");
		$filter->tipo_doc->option("AN","ANTICIPOS");
		$filter->tipo_doc->option("D","DETRACCIONES");
		
		$filter->moneda = new dropdownField("Moneda", "a.moneda");
		$filter->moneda->style='width:200px;';
		$filter->moneda->option("","Todas las monedas" );
		$filter->moneda->options("SELECT codigo,descrip FROM moneda ORDER BY codigo");

		$filter->buttons('reset','search');
		$filter->build();
		
		
        function comp($tipo_doc,$transac,$serie,$numero,$cod_prv){
			
			switch ($tipo_doc){
			
				case 'AB':
					
					$uri = anchor("finanzas/sprm/dataedit/show/$transac","G$serie-$numero");	
					return($uri);
					break;
				
				case 'RI':
					
					$uri = anchor("finanzas/sprm/reintegro/show/$cod_prv/$tipo_doc/$numero/$serie","$serie-$numero");	
					//$uri = anchor("finanzas/sprm/dataedit/show/$transac","$serie-$numero");
					return($uri);
					break;
				
				case 'AN':
				
					$uri = anchor("finanzas/sprm/dataedit/show/$transac","G$serie-$numero");
					return($uri);
					break;
					
				case 'FC':
				
					$uri = "P$serie-$numero";
					return($uri);
					break;
					
				case 'ND':
				
					$uri = "D$serie-$numero";
					return($uri);
					break;
					
				case 'NC':
				
					$uri = "C$serie-$numero";
					return($uri);
					break;
                
                case 'L':
				
					$uri = "L$serie-$numero";
					return($uri);
					break;
                    
                case 'EC':
				
					$uri = anchor("finanzas/sprm/dataedit/show/$transac","G$serie-$numero");
					return($uri);
					break;
                    
                case 'AP':
				
					$uri = anchor("finanzas/sprm/dataedit/show/$transac","G$serie-$numero");
					return($uri);
					break;
                    
                case 'AR':
				
					$uri = anchor("finanzas/sprm/dataedit/show/$transac","L$serie-$numero");
					return($uri);
					break;
			
			}				        
   
			
		}

		$grid = new DataGrid2();
		$grid->order_by('fecha','desc');
		$grid->use_function('comp');
		$grid->per_page = 15;

		$grid->column('Comprobante'       ,'<comp><#tipo_doc#>|<#transac#>|<#seriei#>|<#numeroi#>|<#cod_prv#></comp>',"align='center'");
		$grid->column('N&uacute;mero'     ,'<#seriep#>-<#numero#>',"align='center'");        
        $grid->column("Tipo"              ,"tipo_doc","tipo_doc"  ,"align='center'");
        $grid->column_orderby('Fecha'     ,'<dbdate_to_human><#fecha#></dbdate_to_human>'  ,'fecha'  );
        $grid->column('RUC','rif');
		$grid->column('Nombre'  ,'nombre');
		$grid->column('Monto Comprobante'   ,'<nformat><#montoc#></nformat>','align=\'right\'');
		$grid->column('Monto Factura Afectada'   ,'<nformat><#montof#></nformat>','align=\'right\'');
		$grid->column("Moneda"            ,"moneda","moneda"  ,"align='center'");
		$grid->column("Paga factura"      ,"numerof","numerof"  ,"align='left'");

		$grid->totalizar('montof');
		$grid->build('datagridST');
		
		//echo $grid->db->last_query();
		
		$style ='
		<style type="text/css">
		.fakeContainer { /* The parent container */
		    margin: 5px;
		    padding: 0px;
		    border: none;
		    width: 1200px; /* Required to set */
		    height: 400px; /* Required to set */
		    overflow: hidden; /* Required to set */
		}
		</style>	
		';

		$data['style']   = $style;
		$data['style']  .= style('superTables.css');
        
		$data['content'] = $grid->output;
		$data['filtro']  = $filter->output;
		$data['tabla']  = "";
		
		$data['head']    = $this->rapyd->get_head();
		$data['title'] = heading('Movimientos de Provedores');
		$this->load->view('view_ventanas', $data);
	}
    function reinte(){
        
		$this->rapyd->load('dataedit');
        
		$script='
		<script type="text/javascript" >
			$(function(){
				$(".inputnum").numeric(".");
			});	
		</script>';
		
		
		$modbus_sprv=array(
			'tabla'   =>'scli',
			'columnas'=>array(
                'cliente' =>'C&oacute;digo cod_cli',
                'nombre'=>'Nombre',
                'rifci'=>'RIF'),
			'filtro'  =>array('cod_cli'=>'C&oacute;digo cod_cli','nombre'=>'Nombre'),
			'retornar'=>array(
                'cliente'=>'proveedc'),
                'p_uri'   => array(4=>'<#i#>'),
			'titulo'  =>'Buscar cod_cli');

		$boton=$this->datasis->p_modbus($modbus_sprv);
		


		$edit = new DataEdit(" ", "itppro");
        $edit->back_url = site_url('finanzas/sprm/filteredgrid');
                
		$edit->post_process('update','_post_update2');
		
		$edit->id = new hiddenField(" ", 'id');
		
		$edit->tipoe = new hiddenField(" ", 'tipoe');
		$edit->tipoe->db_name  = 'tipo';
		
		$edit->serie = new dropdownField("Comprobante", "serie");
		$edit->serie->options("SELECT codigo, CONCAT_WS('-',codigo,descrip) AS descrip FROM serieg ORDER BY codigo");
		$edit->serie->rule= "required";
        $edit->serie->style='width:200px;';
        $edit->serie->mode="autohide";

		$edit->numero = new inputField("N&uacute;mero", "numero");
		$edit->numero->size = 12;
		//$edit->numero->rule= "required";
        $edit->numero->css_class ='inputnum';
		$edit->numero->maxlength=11;
		$edit->numero->mode="autohide";
		$edit->numero->in="serie";
		$edit->numero->rule= "callback_chexiste";
		//$edit->numero->when=array('show','modify');
		
		$edit->proveed = new inputField("C&oacute;digo", "proveed");
		$edit->proveed->size = 7;
		$edit->proveed->maxlength=5;
        $edit->proveed->rule= "required";
        $edit->proveed->readonly  = true;
        $edit->proveed->mode="autohide";
		
		$edit->nombre = new inputField("Nombre", "nombre");
		$edit->nombre->size =  40;
		$edit->nombre->maxlength=80;
        $edit->nombre->readonly  = true;
        $edit->nombre->mode="autohide";
    
		$edit->rif = new inputField("RUC", "rif");
		$edit->rif->size =  20;
		$edit->rif->maxlength=20; 
        $edit->rif->readonly  = true;
        $edit->rif->mode="autohide";
        
        $edit->fecha = new DateonlyField("Fecha", "fecha","Y-m-d");
		$edit->fecha->insertValue = date("Y-m-d");
		$edit->fecha->mode="autohide";
        $edit->fecha->rule= "required";
		$edit->fecha->size = 10;
		$edit->fecha->rule= "callback_cambio";
		
        $edit->moneda = new dropdownField("Moneda", "moneda");
		$edit->moneda->style='width:230px;';
		$edit->moneda->option("","Seleccione la moneda" );
		$edit->moneda->options("SELECT codigo,descrip FROM moneda ORDER BY codigo");
		$edit->moneda->rule = 'required';
		$edit->moneda->when=array('show','modify');
		$edit->moneda->mode="autohide";
      
		$edit->cambio = new inputField('Cambio', 'cambio');
		$edit->cambio->when=array('show','modify');
		$edit->cambio->mode="autohide";

		$edit->referen = new inputField('N&uacute;mero de Operaci&oacute;n', 'referen');
		$edit->referen->css_class ='inputnum';
		$edit->referen->size      = 20; 
		$edit->referen->rule = 'required';
		$edit->referen->mode="autohide";
        				
		$edit->monto = new inputField('Monto', 'monto');
		$edit->monto->size = 10;
		$edit->monto->maxlength=15;
		$edit->monto->readonly  = true;
        //$edit->monto->mode="autohide";
		$edit->monto->css_class ='inputnum';
				
		$edit->rein = new inputField('Monto Reintegrado', 'rein');
		$edit->rein->size = 10;
		$edit->rein->maxlength=15;
		$edit->rein->css_class ='inputnum';
		$edit->rein->rule= "callback_rein";
		
		$edit->proveedc = new inputField("Proveedor que debe reintegrar", "proveedc");
		$edit->proveedc->size = 7;
		$edit->proveedc->maxlength=5;
        $edit->proveedc->append($boton.' Se debe crear como CLIENTE');
        $edit->proveedc->rule= "required";
		
		$edit->usuario = new autoUpdateField('usuario',$this->session->userdata('usuario'),$this->session->userdata('usuario'));

        $edit->buttons('save','modify','undo','back');	
        $edit->build();
        
        $data['content'] = $edit->output;
		$data['style']  = style('redmond/jquery-ui-1.8.1.custom.css');
		
		$data['script']  = script('jquery.js');
		$data['script'] .= script('jquery-ui.js');
		$data['script'] .= script('plugins/jquery.numeric.pack.js');
		$data['script'] .= script('plugins/jquery.floatnumber.js');
		$data['script'] .= script('plugins/jquery.autocomplete.js');
		$data['script'] .= script('nformat.js');
		$data["script"] .= $script;
		$data['head']    = $this->rapyd->get_head();
			
		$data['title']   = heading("Reintegro de Proveedor");
		$data['content'] = $edit->output;
		$this->load->view('view_ventanas', $data);
		
	}
    function _post_update2($do){
		
		$monto  =$do->get('monto');
		$aplica =$do->get('aplica');
		$rein   =$do->get('rein');
		$id     =$do->get('id');
		$rif    =$do->get('rif');
		$moneda =$do->get('moneda');
		$cambio =$do->get('cambio');
		$cod_clip =$do->get('proveedc');
		$seriei =$do->get('serie');
		$numeroi =$do->get('numero');
		
		$ntransa =$this->datasis->fprox_numero('ntransa');
		$num     =$this->datasis->fprox_numero('nrein');
		$nrein   = substr($num,1,10);
		$usuario=$this->session->userdata['usuario'];
		$nombre=$this->datasis->dameval("SELECT nombre FROM scli WHERE cliente='$cod_clip'");
		$cuenta=$this->cuenta->cxc($moneda); 
		
		$this->db->query("INSERT INTO itpagos (cuenta,  compro,  moneda,  serie,  numero,  transac,  tipo,  cod_cli,  monto, fecha,  vence,  dias,  observa,  usuario,  estampa,  abonado,  cambio,id_rein) values
		('$cuenta','RI','$moneda','001','R$nrein','$ntransa','RI','$cod_clip','$rein',CURDATE(), CURDATE(),'1','REINTEGRO DE PROVEEDOR POR  G$seriei-$numeroi', '$usuario',CURRENT_TIMESTAMP(),'X','$cambio','$id')");
		
		$this->db->query("INSERT INTO smov (moneda,tipo_doc,serie,numero,fecha,cod_cli,  nombre, monto ,  usuario,transac,vence)
                                            VALUES('$moneda','RI','001','R$nrein',CURDATE(),'$cod_clip','$nombre','$rein','$usuario','$ntransa',CURDATE())");   
   
		
		return true;
	
	}
    function rein(){
		
		$monto=$this->input->post('monto');
		$rein =$this->input->post('rein');			
		
		if ($rein>$monto){
			$this->validation->set_message('rein',"El monto que debe reintegrar $rein  es mayor al monto disponible $monto");
			return FALSE;
		}else {
		 return TRUE;
		}
	
	}
	function reintegro(){
		
		$this->rapyd->load('dataedit');
        
		$script='
		<script type="text/javascript" >
			$(function(){
				$(".inputnum").numeric(".");
			});	
		</script>';
		

		$edit = new DataEdit(" ", "sprm");
        $edit->back_url = site_url('finanzas/sprm/filteredgrid');
        
        $edit->pre_process('delete' ,'_pre_delete2');

		$edit->seriei = new inputField("Comprobante", "seriei");
		$edit->seriei->rule= "required";
        $edit->seriei->style='width:200px;';
        $edit->seriei->mode="autohide";

		$edit->numeroi = new inputField("N&uacute;mero", "numeroi");
		$edit->numeroi->size = 12;
        $edit->numeroi->css_class ='inputnum';
		$edit->numeroi->maxlength=11;
		$edit->numeroi->in="seriei";
		$edit->numeroi->mode="autohide";
		
		$edit->cod_prv = new inputField("Proveedor", "cod_prv");
		$edit->cod_prv->size = 7;
		$edit->cod_prv->maxlength=5;
        $edit->cod_prv->rule= "required";
        $edit->cod_prv->readonly  = true;
        $edit->cod_prv->mode="autohide";
		
		$edit->nombre = new inputField("Nombre", "nombre");
		$edit->nombre->size =  40;
		$edit->nombre->maxlength=80;
        $edit->nombre->readonly  = true;
        $edit->nombre->mode="autohide";
            				
		$edit->monto = new inputField('Monto', 'monto');
		$edit->monto->size = 10;
		$edit->monto->maxlength=15;
		$edit->monto->readonly  = true;
		$edit->monto->css_class ='inputnum';
		
		$edit->observa1 = new inputField("Observaci&oacute;n", "observa1");
		$edit->observa1->size = 7;
		
        $edit->buttons('save','delete','undo','back');	
        $edit->build();
        
        $data['content'] = $edit->output;
		$data['style']  = style('redmond/jquery-ui-1.8.1.custom.css');
		
		$data['script']  = script('jquery.js');
		$data['script'] .= script('jquery-ui.js');
		$data['script'] .= script('plugins/jquery.numeric.pack.js');
		$data['script'] .= script('plugins/jquery.floatnumber.js');
		$data['script'] .= script('plugins/jquery.autocomplete.js');
		$data['script'] .= script('nformat.js');
		$data["script"] .= $script;
		$data['head']    = $this->rapyd->get_head();
			
		$data['title']   = heading("Creado por Reintegro a Cliente");
		$data['content'] = $edit->output;
		$this->load->view('view_ventanas', $data);
		
		
	}
	function dataedit(){
		
		$this->rapyd->load('dataobject','datadetails');
        
        $modbus=array(
			'tabla'   =>'mgas',
			'columnas'=>array(
				'cuenta'  =>'Cuenta',
				'descrip' =>'Descripci&oacute;n',
				'nom_grup'  => 'Grupo'
				),
			'filtro'  =>array('cuenta'  =>'Cuenta','descrip'=>'Descripci&oacute;n'),
			'retornar'=>array(
				'cuenta' =>'cuenta'
				),
			'p_uri'   => array(4=>'<#i#>'),
			'titulo'  => 'Buscar Cuenta'
		);
		$btn=$this->datasis->p_modbus($modbus);

		
		$modbus_sprv=array(
			'tabla'   =>'sprv',
			'columnas'=>array(
                'proveed' =>'C&oacute;digo Proveedor',
                'nombre'=>'Nombre',
                'rif'=>'RIF'),
			'filtro'  =>array('proveed'=>'C&oacute;digo Proveedor','nombre'=>'Nombre'),
			'retornar'=>array(
                'proveed'=>'proveed',
                'rif'=>'rif',
                'nombre'=>'nombre'),
                'p_uri'   => array(4=>'<#i#>'),
			'titulo'  =>'Buscar Proveedor');

		$boton=$this->datasis->p_modbus($modbus_sprv);


        $do = new DataObject('itppro');
		$do->rel_one_to_many('itpprot', 'itpprot', 'id');
				
		$edit = new DataDetails('Pagos', $do);
		$edit->back_url = site_url('finanzas/sprm/filteredgrid');
		$edit->set_rel_title('itpprot','Cuenta <#o#>');

		$edit->pre_process('delete' ,'_pre_delete');
		
		$edit->id = new hiddenField(" ", 'id');
        
        $edit->tipo2 = new  dropdownField ('Tipo de Documento', 'tipo2');
        $edit->tipo2->db_name='tipo';
        $edit->tipo2->option("AB","PAGO DE PROVEEDOR");
		$edit->tipo2->option('AN',"ANTICIPO DE PROVEEDOR");
		$edit->tipo2->option('AP',"ADELANTO DE PLANILLAS");
		$edit->tipo2->option('EC',"ENTREGAS A RENDIR CUENTA");
        $edit->tipo2->option('PP',"PRESTAMOS PERSONAL");
        $edit->tipo2->option('AR',"AJUSTE POR REDONDEO");
		$edit->tipo2->style='width:300px;'; 
        
        $edit->fecha = new DateonlyField("Fecha de Pago", "fecha","Y-m-d");
		$edit->fecha->insertValue = date("Y-m-d");
		$edit->fecha->mode="autohide";
        $edit->fecha->rule= "required";
		$edit->fecha->size = 10;
		$edit->fecha->rule= "callback_cambio";
        
        $edit->fechac = new DateonlyField("Fecha de Cambio", "fechac","Y-m-d");
		$edit->fechac->insertValue = date("Y-m-d");
		$edit->fechac->mode="autohide";
        $edit->fechac->rule= "required";
		$edit->fechac->size = 10;
		$edit->fechac->rule= "callback_cambio";
                
		$edit->serie = new dropdownField("Comprobante", "serie");
		$edit->serie->option("","Seleccione comprobante" );
		$edit->serie->options("SELECT codigo, CONCAT_WS('-',codigo,descrip) AS descrip FROM bancos ORDER BY codigo");
		$edit->serie->rule= "required";
		$edit->serie->onchange = "numegreso();";
        $edit->serie->style='width:200px;';

		$edit->numero = new inputField("N&uacute;mero", "numero");
		$edit->numero->size = 12;
		//$edit->numero->rule= "required";
        $edit->numero->css_class ='inputnum';
		$edit->numero->maxlength=11;
		$edit->numero->rule= "callback_chexiste";
		//$edit->numero->when=array('show');

		$edit->proveed = new inputField("C&oacute;digo", "proveed");
		$edit->proveed->size = 7;
		$edit->proveed->maxlength=5;
        $edit->proveed->append($boton);
        $edit->proveed->rule= "required";
        $edit->proveed->readonly  = true;
        
        $edit->cajachica = new  dropdownField ('Caja Chica','cajachica');
        $edit->cajachica->option('N','No esta relacionado con caja chica');
        //$edit->cajachica->option('S','Si esta relacionado con caja chica');
        $edit->cajachica->style='width:260px;';
        //$edit->cajachica->insertValue = $cajachica;
        
        $edit->detraccion = new  dropdownField ('Detracci&oacute;n','detraccion');
        $edit->detraccion->option('N','No es un pago por detracci&oacute;n');
        //$edit->detraccion->option('S','Si es un pago por detracci&oacute;n');
        $edit->detraccion->style='width:260px;';
        //$edit->detraccion->insertValue = $detraccion;
		
		$edit->nombre = new inputField("Nombre", "nombre");
		$edit->nombre->size =  40;
		$edit->nombre->maxlength=80;
        $edit->nombre->readonly  = true;
    
		$edit->rif = new inputField("RUC", "rif");
		$edit->rif->size =  20;
		$edit->rif->maxlength=20; 
        $edit->rif->readonly  = true;
        
        $edit->condi1 = new inputField('Observaci&oacute;n', 'condi1');
		$edit->condi1->size =60;
		$edit->condi1->maxlength=50;
        
        $edit->ccosto = new  dropdownField ('Centro de Costo', 'ccosto');
        $edit->ccosto->option("0001","ADMINISTRACI&Oacute;N");
		$edit->ccosto->option('0002',"OPERACI&Oacute;N");
		$edit->ccosto->option('0003','IMPORTACI&Oacute;N'); 
		$edit->ccosto->style='width:200px;';    
        
        $edit->moneda = new dropdownField("Moneda", "moneda");
		$edit->moneda->style='width:230px;';
		$edit->moneda->option("","Seleccione la moneda" );
		$edit->moneda->options("SELECT codigo,descrip FROM moneda ORDER BY codigo");
		$edit->moneda->rule = 'required';
		$edit->moneda->group = "Precios";
		$edit->moneda->when=array('show');
		
		$edit->cambio = new inputField('Cambio', 'cambio');
		$edit->cambio->css_class ='inputnum';
		$edit->cambio->size      = 12; 
		$edit->cambio->when=array('show');

		$edit->referen = new inputField('N&uacute;mero de Operaci&oacute;n', 'referen');
		$edit->referen->css_class ='inputnum';
		$edit->referen->size      = 20; 
		//$edit->referen->rule = 'required';
        
		$edit->monto = new inputField('Monto Total a Pagar', 'monto');
		$edit->monto->size = 15;
		$edit->monto->maxlength=15;
		$edit->monto->css_class ='inputnum';
		//$edit->monto->rule = 'required';
		$edit->monto->readonly  =true;
		        
        $edit->cuenta2 = new inputField('Cuenta', 'cuenta');
		$edit->cuenta2->size     = 12;
		$edit->cuenta2->rule     = 'required';
		//$edit->cuenta->append($btn);
		$edit->cuenta2->readonly  =true;
		$edit->cuenta2->when=array('show');
		
		$edit->cuenta_ori = new inputField('Origen del fondo', 'cuenta_ori');
        $edit->cuenta_ori->size     = 12;
		
		$edit->formap = new dropdownField("Medio de Pago", "formap");
		$edit->formap->style='width:200px;';
		$edit->formap->options("SELECT formap,nombre FROM formap ORDER BY formap");
       
		$edit->usuario = new autoUpdateField('usuario',$this->session->userdata('usuario'),$this->session->userdata('usuario'));
        
        $edit->cuenta_rein = new inputField('Cuenta a reintegrar', 'cuenta_rein');
		$edit->cuenta_rein->size     = 12;
		$edit->cuenta_rein->append(' Cuenta a Reintegrar');
        
        $edit->proveedc = new inputField("Proveedor que debe reintegrar", "proveedc");
		$edit->proveedc->size = 12;
		$edit->proveedc->maxlength=5;
        $edit->proveedc->append(' Se debe crear como CLIENTE');
        
        $edit->rein = new inputField('Monto Reintegrado', 'rein');
		$edit->rein->size = 10;
		$edit->rein->maxlength=15;
		$edit->rein->css_class ='inputnum';
        
        //**************************
		//  Campos para el detalle
		//**************************
		
		$edit->docu = new dropdownField('Documento <#o#>', 'docu_<#i#>');
		$edit->docu->db_name  = 'docu';
		$edit->docu->options("SELECT codigo,descrip FROM tpagos");
		$edit->docu->rel_id   = 'itpprot';
		$edit->docu->style    = 'width:100%';
		
		$edit->cuenta = new inputField('Cuenta <#o#>', 'cuenta_<#i#>');
		$edit->cuenta->size     = 12;
		$edit->cuenta->maxlength= 10;
		$edit->cuenta->readonly  = true;
		$edit->cuenta->db_name  = 'cuenta';
		$edit->cuenta->rel_id   = 'itpprot';
		$edit->cuenta->rule     = 'required';
		$edit->cuenta->append($btn);

		$edit->desca = new inputField('Descripci&oacute;n <#o#>', 'desca_<#i#>');
		$edit->desca->db_name='desca';
		$edit->desca->rel_id='itpprot';
		$edit->desca->rule = 'required|strtoupper';
		$edit->desca->size    = 35;
		
		$edit->ruc = new inputField('RUC <#o#>', 'ruc_<#i#>');
		$edit->ruc->db_name='ruc';
		$edit->ruc->rel_id='itpprot';
		$edit->ruc->rule = 'strtoupper';
		$edit->ruc->size    = 11;
		$edit->ruc->maxlength= 11;
		
		$edit->tipo = new dropdownField('Tipo <#o#>', 'tipo_<#i#>');
		$edit->tipo->db_name  = 'tipo';
		$edit->tipo->option("D","D");
		$edit->tipo->option("C","C");
		$edit->tipo->rel_id   = 'itpprot';
		$edit->tipo->rule     = 'required|positive';
		$edit->tipo->autocomplete=false;
		$edit->tipo->onchange ='importe(<#i#>)';
		$edit->tipo->style    = 'width:100%';
		
		$edit->importe = new inputField('Importe <#o#>', 'importe_<#i#>');
		$edit->importe->db_name='importe';
		$edit->importe->size=12;
		//$edit->importe->readonly=true;
		$edit->importe->css_class='inputnum';
		$edit->importe->rel_id   ='itpprot';
		$edit->importe->onkeyup  ='importe(<#i#>)';
		
		$edit->creditos = new inputField('creditos <#o#>', 'creditos_<#i#>');
		$edit->creditos->db_name='creditos';
		$edit->creditos->size=12;
		$edit->creditos->css_class='inputnum';
		$edit->creditos->rel_id   ='itpprot';
		$edit->creditos->readonly=true;
		$edit->creditos->onkeyup  ='importe(<#i#>)';
		
		$edit->rein = new inputField('Monto Reintegrado', 'rein');
		$edit->rein->size = 10;
		$edit->rein->maxlength=15;
		$edit->rein->css_class ='inputnum';
                
        $id    =$edit->_dataobject->get('id');
		$tipo   =$edit->_dataobject->get('tipo');
		$monto  =$edit->_dataobject->get('monto');
		$aplica =$edit->_dataobject->get('aplica');
        
		
		IF($aplica>0){
			$edit->buttons('save','undo','back');
		}else{
			$edit->buttons("save", "undo", "back",'delete');
		}
		
        $edit->build();
        		
		$mSQL="SELECT * FROM relacion WHERE itppro='$id' and tipo NOT IN ('NC','CR')";
		
		$mSQL_1=$this->db->query($mSQL);
		$conten['result']=$mSQL_1->result();	
        
        	
		switch ($tipo){
			
		case 'AB':
			$data['title']   = heading('Pago de Proveedor '.$edit->serie->value.'-'.$edit->numero->value);
			break;
		
		case 'AN':
			$data['title']   = heading("Anticipo Proveedor".$edit->serie->value.'-'.$edit->numero->value." por $monto aplicado a las siguientes facturas");	
			break;
            
        case 'AP':
			$data['title']   = heading("Anticipo de Planilla ".$edit->serie->value.'-'.$edit->numero->value);	
			break;
            
        case 'EC':
			$data['title']   = heading("Entregas a Rendir Cuenta ".$edit->serie->value.'-'.$edit->numero->value);	
			break;
        
        case 'PP':
			$data['title']   = heading("Prestamos Personal ".$edit->serie->value.'-'.$edit->numero->value);	
			break;
        
        case 'AR':
			$data['title']   = heading("Ajuste por Rendondeo ".$edit->serie->value.'-'.$edit->numero->value);	
			break;
        
		}
		
		$conten['form']  =&  $edit;
		$data['content'] = $this->load->view('view_sprm', $conten,true);
		
		
		$data['style']  = style('redmond/jquery-ui-1.8.1.custom.css');
		
		$data['script']  = script('jquery.js');
		$data['script'] .= script('jquery-ui.js');
		$data['script'] .= script('plugins/jquery.numeric.pack.js');
		$data['script'] .= script('plugins/jquery.numeric.pack.js');
		$data['script'] .= script('plugins/jquery.floatnumber.js');
		$data['script'] .= script('nformat.js');

		$data['head']    = $this->rapyd->get_head();
		$this->load->view('view_ventanas', $data);
	}
	function _pre_delete2($do){
		
	    $id_rein=$do->get('id_rein');
		$numeroi=$do->get('numeroi');
		$monto  =$do->get('monto');
		 
		$this->db->query("UPDATE itabonos SET aplica=aplica-$monto WHERE id='$id_rein'");
		 
		logusu('sprm',"REINTEGRO  $numeroi al proveedor  ELIMINADO");
	
	}
	function _pre_delete($do){
		
		
        $id=$do->get('id');
        
        //echo $id;
        $proveed =$do->get('proveed');
        $numero  =$do->get('numero');
        $tipo    =$do->get('tipo');
        
        $mSQL_1=$this->db->query("SELECT monto,cod_prv,numero,proveed,factura,serief FROM relacion WHERE itppro='$id'");
             
        foreach($mSQL_1->result() as $items ){
			
			//$abonos=$this->datasis->dameval("SELECT SUM(monto) FROM relacion WHERE cod_prv='$items->cod_prv' AND proveed='$items->proveed' AND factura='$items->factura'");
            
            $this->db->query("UPDATE sprm SET abonos=abonos-$items->monto WHERE cod_prv='$items->cod_prv' AND proveed='$items->proveed' AND numero='$items->factura' AND seriep='$items->serief'");
      
		}
        
        $mSQL_2=$this->db->query("DELETE FROM relacion WHERE itppro='$id'");
        $mSQL_4=$this->db->query("DELETE FROM itpprot WHERE id='$id'");
        $mSQL_3=$this->db->query("DELETE FROM bmov WHERE idabono='$id' AND clipro='P'");
        $mSQL_3=$this->db->query("DELETE FROM sprm WHERE transac='$id' AND tipo_doc='$tipo'");
            
		logusu('ITPPRO',"PAGO al proveedor $tipo $proveed numero $numero ELIMINADO");
	}  
}
?>
